#ifndef SQL_CONN_RAII_H
#define SQL_CONN_RAII_H
#include "sqlconnpool.h"
//数据库连接池的RAII类
class SqlConnRAII
{
public:  
    //构造函数，获取数据库连接
    SqlConnRAII(MYSQL** sql,SqlConnPool* connpool)
    {
        //断言数据库连接池不为空
        assert(connpool);
        //从连接池获取连接
        *sql = connpool->GetConn();
        //保存连接的引用
        sql_ = *sql;
        //保存连接池的引用
        connpool_ = connpool;
    }
    //析构函数，释放数据库连接
    ~SqlConnRAII()
    {
        //如果连接有效，就释放连接
        if(sql_)
        {
            //将连接归还到连接池
            connpool_->FreeConn(sql_);
        }
    }
private:
    MYSQL* sql_;
    SqlConnPool* connpool_;
};
#endif